VERSION 1.0 CLASS
BEGIN
  MultiUse = -1  'True
  Persistable = 0  'NotPersistable
  DataBindingBehavior = 0  'vbNone
  DataSourceBehavior  = 0  'vbNone
  MTSTransactionMode  = 0  'NotAnMTSObject
END
Attribute VB_Name = "ISprite"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
'Interface: ISprite
'====================================================================================
'This is an interface; not an actual class, but a set of functions a class can
'implement to interoperate with code that works with mixed classes. Only the
'function name and paramters is needed.

'ISprite is an interface for the Pac Mar and ghost sprites, that use the same
'function to move around the maze (and thus, an interface is needed to unify the
'two classes)
'------------------------------------------------------------------------------------
Option Explicit

Public Direction As PM_DIRECTION    'Current direction
Public Pending As PM_DIRECTION      'Next direction at a junction
Public XPosition As Long            'X position in maze in pixels
Public YPosition As Long            'Y position in maze in pixels
Public Speed As Long                'Speed in pixels/frame
Public IsMoving As Boolean          'False if the sprite is against a corner

'Animate the sprite
Public Sub Animate(): End Sub

'Draw the sprite in its current location / state
Public Sub Draw(ByVal hDC As Long): End Sub

'Decide where to turn at a junction
Public Function MakeDecision(ByVal TileX As Long, ByVal TileY As Long) As PM_DIRECTION: End Function

'=== END ============================================================================
'This work is licenced under the Creative Commons Attribution 2.5 License
